Half way merge with Boris recent dom creation checkin (demonstrating my inability
to control BK tools)
kaf24@labyrinth.cl.cam.ac.uk
kaf24@plym.cl.cam.ac.uk
kaf24@striker.cl.cam.ac.uk
+lynx@idefix.cl.cam.ac.uk
+ rn@wyvis.camb.intel-research.net
smh22@boulderdash.cl.cam.ac.uk
smh22@uridium.cl.cam.ac.uk
return 0;
}
+
void __init domain_init(void)
{
- int i;
- for ( i = 0; i < NR_CPUS; i++ )
- {
- INIT_LIST_HEAD(&schedule_data[i].runqueue);
- spin_lock_init(&schedule_data[i].lock);
- schedule_data[i].prev = &idle0_task;
- schedule_data[i].curr = &idle0_task;
+ printk("Initialising domains\n");
+ // scheduler_init();
+ }
+
+
+
+ #if 0
- unsigned long s = (mod[ 0].mod_start + (PAGE_SIZE-1)) & PAGE_MASK;
- unsigned long e = (mod[nr_mods-1].mod_end + (PAGE_SIZE-1)) & PAGE_MASK;
- while ( s != e )
- {
- free_pages((unsigned long)__va(s), 0);
- s += PAGE_SIZE;
}
-#endif
-
+}
#include <xeno/block.h>
struct task_struct {
+
int processor;
- int state, hyp_events;
+ int state;
+ int hyp_events;
unsigned int domain;
+ /* index into frame_table threading pages belonging to this
+ * domain together. these are placed at the top of the structure
+ * to avoid nasty padding for various kernel structs when using
+ * task_struct in user space
+ */
+ unsigned long pg_head;
+ unsigned int tot_pages;
+
/* An unsafe pointer into a shared data area. */
shared_info_t *shared_info;